/*************************************************************************
* Demo sketch for MultiLCD library
* Distributed under GPL v2.0
* (C)2013-2015 developed by Stanley Huang <stanleyhuangyc@gmail.com>
* For more information, please visit http://arduinodev.com
*************************************************************************/

#include <Arduino.h>
#include <SPI.h>
#include <MultiLCD.h>

//LCD_ILI9341 lcd; /* for 2.2" SPI LCD */
//LCD_ILI9325D lcd; /* for 2.8" LCD */
LCD_SSD1289 lcd; /* for 3.2" LCD */
//LCD_R61581 lcd; /* for 3.5" LCD */

static const PROGMEM uint8_t smile[48 * 48 / 8] = {
0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0xE0,0xF0,0xF8,0xF8,0xFC,0xFC,0xFE,0xFE,0x7E,0x7F,0x7F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x7F,0x7F,0x7E,0xFE,0xFE,0xFC,0xFC,0xF8,0xF8,0xF0,0xE0,0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0xC0,0xF0,0xFC,0xFE,0xFF,0xFF,0xFF,0x3F,0x1F,0x0F,0x07,0x03,0x01,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x01,0x03,0x07,0x0F,0x1F,0x3F,0xFF,0xFF,0xFF,0xFE,0xFC,0xF0,0xC0,0x00,
0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x1F,0x1F,0x1F,0x3F,0x1F,0x1F,0x02,0x00,0x00,0x00,0x00,0x06,0x1F,0x1F,0x1F,0x3F,0x1F,0x1F,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,
0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xE0,0x00,0x00,0x30,0xF8,0xF8,0xF8,0xF8,0xE0,0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0xE0,0xF8,0xF8,0xFC,0xF8,0x30,0x00,0x00,0xE0,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,
0x00,0x03,0x0F,0x3F,0x7F,0xFF,0xFF,0xFF,0xFC,0xF8,0xF0,0xE1,0xC7,0x87,0x0F,0x1F,0x3F,0x3F,0x3E,0x7E,0x7C,0x7C,0x7C,0x78,0x78,0x7C,0x7C,0x7C,0x7E,0x3E,0x3F,0x3F,0x1F,0x0F,0x87,0xC7,0xE1,0xF0,0xF8,0xFC,0xFF,0xFF,0xFF,0x7F,0x3F,0x0F,0x03,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x03,0x07,0x0F,0x1F,0x1F,0x3F,0x3F,0x7F,0x7F,0x7E,0xFE,0xFE,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFE,0xFE,0x7E,0x7F,0x7F,0x3F,0x3F,0x1F,0x1F,0x0F,0x07,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
};

static const PROGMEM uint8_t tick[16 * 16 / 8] =
{0x00,0x80,0xC0,0xE0,0xC0,0x80,0x00,0x80,0xC0,0xE0,0xF0,0xF8,0xFC,0x78,0x30,0x00,0x00,0x01,0x03,0x07,0x0F,0x1F,0x1F,0x1F,0x0F,0x07,0x03,0x01,0x00,0x00,0x00,0x00};

static const PROGMEM uint8_t cross[16 * 16 / 8] =
{0x00,0x0C,0x1C,0x3C,0x78,0xF0,0xE0,0xC0,0xE0,0xF0,0x78,0x3C,0x1C,0x0C,0x00,0x00,0x00,0x30,0x38,0x3C,0x1E,0x0F,0x07,0x03,0x07,0x0F,0x1E,0x3C,0x38,0x30,0x00,0x00};

void setup()
{
	lcd.begin();
	lcd.clear();
	lcd.setColor(255, 0, 255);
	lcd.setXY(40, 10);
	lcd.draw(smile, 48, 48);

	lcd.setColor(255, 255, 255);
	lcd.setCursor(0, 10);
	lcd.setFontSize(FONT_SIZE_SMALL);
	lcd.print("Hello, world!");

	lcd.setColor(255, 255, 0);
	lcd.setCursor(0, 11);
	lcd.setFontSize(FONT_SIZE_MEDIUM);
	lcd.print("Hello, world!");

	lcd.setColor(255, 0, 0);
	lcd.setCursor(0, 13);
	lcd.setFontSize(FONT_SIZE_SMALL);
	lcd.printLong(1234567890);

	lcd.setColor(0, 255, 0);
	lcd.setCursor(0, 14);
	lcd.setFontSize(FONT_SIZE_MEDIUM);
	lcd.printLong(1234567890);

	lcd.setColor(0, 0, 255);
	lcd.setCursor(0, 16);
	lcd.setFontSize(FONT_SIZE_LARGE);
	lcd.printLong(12345678);

	lcd.setColor(0, 255, 255);
	lcd.setCursor(0, 18);
	lcd.setFontSize(FONT_SIZE_XLARGE);
	lcd.printLong(12345678);

	lcd.setXY(30, 200);
	lcd.setColor(0, 255, 0);
	lcd.draw(tick, 16, 16, 2);
	lcd.setColor(255, 0, 0);
	lcd.draw(cross, 16, 16, 2);
}

void loop()
{
}
